简单工厂模式

工厂模式是用来创建对象的设计模式。
简单工厂模式专门定义一个工厂类来负责创建其它类的实例。这个工厂类能够管理这些对象,能够知道创建了多少这样的对象。简单工厂模式是工厂模式中最简单的一种。
简单工厂模式的实质是,根据工厂类中静态方法的传入参数创建产品类实例,并且这些产品类都继承自一个抽象类或接口。该模式中包含的角色:
(1)Factory(工厂)角色
工厂类是简单工厂模式的核心,,它包含了必要的判断逻辑,根据外界给定的信息,决定应该创建哪个具体类的对象。工厂类可以被外界调用,创建所需的产品对象。
(2)Product(抽象产品)角色
简单工厂模式创建的所有对象的父类,负责描述所有实例的所有公共接口。
(3)ConcreteProduct(具体产品)角色
是简单工厂模式的创建目标。所有的创建对象都是这个角色的某个具体类的实例。抽象产品的子类实现了抽象产品类中定义的所有抽象方法。

1
2
3
4
5
6
//抽象产品类
abatract class Auto{
//可以有公有方法
//抽象方法
abstract void methodDiff();
}
1
2
3
4
5
6
7
8
9
10
11
12
//具体产品类
//若抽象产品类是接口,用implements关键字
class Car extends Auto{
void methodDiff(){

}
}
class Truck extends Auto{
void methodDiff(){

}
}
1
2
3
4
5
6
7
8
9
10
11
//工厂类
class Factory{
public static Auto createAuto(int autoType){
if (autoType == 0){
return new Car();
} else if (autoType == 1){
return new Truck();
}
return null;
}
}
1
2
3
4
5
//测试类
public class AutoTest{
Auto car = Factory.createAuto(0);
Auto truck = Factory.createAuto(1);
}